#include "BulletCollision/CollisionShapes/btConvexInternalShape.h"
#ifdef __cplusplus
extern "C" {
#endif
btConvexInternalShapeData* bullet_NewbtConvexInternalShapeData(){
	btConvexInternalShapeData* wrap_out = new btConvexInternalShapeData();
	return wrap_out;
}

float bullet_btConvexInternalShapeData_GetFieldOfM_collisionMargin(btConvexInternalShapeData* c_this){
	return (float)(c_this->m_collisionMargin);
}

btCollisionShapeData* bullet_btConvexInternalShapeData_GetFieldOfM_collisionShapeData(btConvexInternalShapeData* c_this){
	return (btCollisionShapeData*)(&c_this->m_collisionShapeData);
}

btVector3FloatData* bullet_btConvexInternalShapeData_GetFieldOfM_implicitShapeDimensions(btConvexInternalShapeData* c_this){
	return (btVector3FloatData*)(&c_this->m_implicitShapeDimensions);
}

btVector3FloatData* bullet_btConvexInternalShapeData_GetFieldOfM_localScaling(btConvexInternalShapeData* c_this){
	return (btVector3FloatData*)(&c_this->m_localScaling);
}

int bullet_btConvexInternalShapeData_GetFieldOfM_padding(btConvexInternalShapeData* c_this){
	return (int)(c_this->m_padding);
}

btVector3* bullet_btConvexInternalShape_getImplicitShapeDimensions(btConvexInternalShape* c_this){
	btVector3 const& c_out = c_this->getImplicitShapeDimensions();
	btVector3* wrap_out = (btVector3*)(&c_out);
	return wrap_out;
}

btVector3* bullet_btConvexInternalShape_getLocalScalingNV(btConvexInternalShape* c_this){
	btVector3 const& c_out = c_this->getLocalScalingNV();
	btVector3* wrap_out = (btVector3*)(&c_out);
	return wrap_out;
}

double bullet_btConvexInternalShape_getMarginNV(btConvexInternalShape* c_this){
	btScalar c_out = c_this->getMarginNV();
	double wrap_out = (c_out);
	return wrap_out;
}

void bullet_btConvexInternalShape_setImplicitShapeDimensions(btConvexInternalShape* c_this,btVector3* dimensions){
	btVector3 const& c_arg_dimensions=(btVector3 const&)(*dimensions);
	c_this->setImplicitShapeDimensions(c_arg_dimensions);
}

void bullet_btConvexInternalShape_setSafeMargin(btConvexInternalShape* c_this,double minDimension,double defaultMarginMultiplier){
	btScalar c_arg_minDimension=minDimension;
	btScalar c_arg_defaultMarginMultiplier=defaultMarginMultiplier;
	c_this->setSafeMargin(c_arg_minDimension,c_arg_defaultMarginMultiplier);
}

void bullet_btConvexInternalShape_setSafeMargin1(btConvexInternalShape* c_this,btVector3* halfExtents,double defaultMarginMultiplier){
	btVector3 const& c_arg_halfExtents=(btVector3 const&)(*halfExtents);
	btScalar c_arg_defaultMarginMultiplier=defaultMarginMultiplier;
	c_this->setSafeMargin(c_arg_halfExtents,c_arg_defaultMarginMultiplier);
}

void bullet_btConvexInternalAabbCachingShape_recalcLocalAabb(btConvexInternalAabbCachingShape* c_this){
	c_this->recalcLocalAabb();
}

#ifdef __cplusplus
}
#endif
